The present invention, in some embodiments thereof, relates to replica management in cloud computing and, more specifically, but not exclusively, to an adaptive and dynamic replication management in cloud computing.
Replication of objects, also referred to herein as replicas, in several locations improves the reliability, scalability and availability of web services in a network, such as a cloud network, whereby shared resources, software, and/or information are provided to client terminals, such as computers, servers, cellular devices and other devices over a network (typically the Internet). In particular, networks typically composed of geographically disparate data centers use object replication to support geographic redundancy for fault-tolerance, low access latency to customers, and/or horizontal scalability.
Some networks provide web services which require using strongly consistent replicas so that all accesses (e.g. read, write and the like) to the data in the replicas are seen by all parallel processes (e.g. nodes, processors and the like) in the same order, optionally sequentially. In such a manner, only one consistent state can be observed, as opposed to weak consistency, where different parallel processes (or nodes etc.) can perceive variables in different states. Strongly consistent replication is fundamental to critical application domains such as e-commerce, including online banking and stock trading, and is also often adopted for certain parts of web applications and sites such as password/account management. Developers also find it substantially easier to deal with strong consistency guarantees, as weaker semantics requires applications to resolve or tolerate conflicts which complicate application code and prolongs the development time.